package twobranchTree.maxdepth;

import twobranchTree.preorderTraversal.TreeNode;

/**
 * @Date 2020/2/20
 * @author 王光浩
 * @Thinking 使用自顶向下的方式来解决该题。在树形结构中如果能够仅凭该节点的信息就可以获取答案，那么我们可以考虑使用自
 *           顶向下的递归方式来解决该题。自顶向下的递归方式有点类似与前序遍历。
 */
public class TopToDown {
	private int answer=0;
    public int maxDepth(TreeNode root) {
    	recursively(root,1);
        return answer;
    }
    private void recursively(TreeNode node,int level) {
    	if(node==null)return;
    	this.answer=this.answer>level?this.answer:level; //将当前节点的深度与当前最深的深度进行比较
    	recursively(node.left,level+1);    //进入左右子节点
    	recursively(node.right,level+1);
    }
}
